package com.lcj.dr.service;

import com.github.pagehelper.PageInfo;
import com.lcj.common.util.Result;
import com.lcj.dr.controller.form.SearchDriverByPageForm;
import com.lcj.dr.controller.form.UpdateDriverHomeForm;
import com.lcj.dr.controller.form.UpdatePhoneForm;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author : lcj
 * @create 2022/11/2 13:47
 */
public interface DriverService {

    /**
     * 查询司机openId
     * @param driverId
     * @return
     */
    String searchDriverOpenId(long driverId);
    /**
     * 注册新司机
     * @param param
     * @return
     */
    public Result registerNewDriver(Map param);

    /**
     * 更新司机信息
     * @param param
     * @return
     */
    public int updateDriverAuth(Map param);

    /**
     * 创建司机人脸模型
     * @param driverId
     * @param photo
     * @return
     */
    public String createDriverFaceModel(long driverId, String photo);

    /**
     * 验证人脸是否正确
     * @param driverId
     * @param photo
     * @return
     */
    Result vertificateDriverFace(long driverId, String photo);

    /**
     * 登录
     * @param code
     * @return
     */
    public HashMap login(String code);

    /**
     * 查询司机信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverBaseInfo(long driverId);

    /**
     * 分页查询司机数据
     * @param form
     * @return
     */
    public PageInfo<HashMap> searchDriverByPage(SearchDriverByPageForm form);

    /**
     * 查询司机实名认证信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverAuth(long driverId);

    /**
     * 查询司机实名信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverRealSummary(long driverId);

    /**
     * 查询司机是否已完成实名信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverIsRealAuth(long driverId);

    /**
     * 更新司机认证信息
     * @param param
     * @return
     */
    public int updateDriverRealAuth(Map param);

    /**
     * 查询司机简明信息(id,name,tel)
     * @param driverId
     * @return
     */
    HashMap searchDriverBriefInfo(long driverId);

    /**
     * 查询司机是否允许开始接单
     * @param param
     * @return
     */
    HashMap searchCanStartWork(Map param);

    /**
     * 更新司机电话
     * @param form
     * @return
     */
    Integer updateDriverPhone(UpdatePhoneForm form);

    /**
     * 更新司机家
     * @param form
     * @return
     */
    int updateDriverHome(UpdateDriverHomeForm form);
}
